﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace XrayService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IXrayService" in both code and config file together.
    [ServiceContract]
    public interface IXrayService
    {
        [OperationContract]
        IEnumerable<MedtrakPatientData> GetPatientDatasByMedtrakRowID(int MedtrakRowID, PatientDataMode DataMode);
    }

    // Use a data contract as illustrated in the sample below to add composite types to service operations.
    [DataContract]
    public enum PatientDataMode
    {
        [EnumMember]
        Profile,
        [EnumMember]
        Address,
        [EnumMember]
        Admission,
        [EnumMember]
        Payment,
        [EnumMember]
        Custom,
        [EnumMember]
        Ward,
        [EnumMember]
        OPD,
        [EnumMember]
        DischargeDate,
        [EnumMember]
        AdmissionDate,

    };

    [DataContract]
    public class MedtrakPatientData
    {
        [DataMember]
        public PatientDataMode DataMode { get; set; } //ชนิดของข้อมูลที่ดึง
        [DataMember]
        public string HN { get; set; } //HN
        [DataMember]
        public string AN { get; set; } //AN
        [DataMember]
        public string PID { get; set; } //รหัสบัตรประจำตัวประชาขน
        [DataMember]
        public string Title { get; set; } //คำนำหน้า
        [DataMember]
        public string FirstName { get; set; } //ชื่อ
        [DataMember]
        public string LastName { get; set; } //นามสกุล
        [DataMember]
        public byte? Sex { get; set; } //เพศ: ชาย = 1, หญิง = 2
        [DataMember]
        public DateTime? BirthDate { get; set; } //วันเกิด - คศ.
        [DataMember]
        public string INSTCode { get; set; }//กองทุน
        [DataMember]
        public string INSTName { get; set; }//กองทุน
        [DataMember]
        public string PaymentID { get; set; } //รหัสสิทธิการรักษา
        [DataMember]
        public string PaymentName { get; set; } //ชื่อสิทธิการรักษา
        [DataMember]
        public string HospitalMain { get; set; } //สถานพยาบาลหลัก
        [DataMember]
        public string AdmitType { get; set; } //IPD = "In Patient", OPD = "Out Patient", ER = "Emergency"
        [DataMember]
        public DateTime? AdmitDateTime { get; set; } //วันเข้ารับการรักษา
        [DataMember]
        public DateTime? DischargeDateTime { get; set; } //วันจำหน่าย
        [DataMember]
        public string WardID { get; set; } //รหัสหอผู้ป่วย
        [DataMember]
        public string WardName { get; set; } //ชือหอผู้ป่วย
        [DataMember]
        public string Address { get; set; } //ที่อยู่
        [DataMember]
        public int? TambonID { get; set; } //รหัสตำบล
        [DataMember]
        public string TambonName { get; set; } //ชื่อตำบล
        [DataMember]
        public int? AmphurID { get; set; } //รหัสอำเถอ
        [DataMember]
        public string AmphurName { get; set; } //ชื่ออำเภอ
        [DataMember]
        public int? ProvinceID { get; set; } //รหัสจังหวัด
        [DataMember]
        public string ProvinceName { get; set; } //ชื่อจังหวัด
        [DataMember]
        public string MarriageCode { get; set; } //รหัสสถานภาพสมรส
        [DataMember]
        public string MarriageName { get; set; } //ชื่อสถานภาพ
        [DataMember]
        public string OCCUPACode { get; set; } //รหัสอาชีพ
        [DataMember]
        public string OCCUPAName { get; set; } //ชื่ออาชีพ
        [DataMember]
        public string NationCode { get; set; } //รหัสประเทศ
        [DataMember]
        public string NationName { get; set; } //ชื่ออาชีพ   
        [DataMember]
        public string PhysicianCode { get; set; } //รหัสแพทย์
        [DataMember]
        public string PhysicianName { get; set; } //ชื่อแพทย์
        [DataMember]
        public string PhysicianSMCNO { get; set; }
        [DataMember]
        public int? MedtrakRowID { get; set; }//RowID
        [DataMember]
        public string ANOLD { get; set; }//RowID
        [DataMember]
        public string VisitStatus { get; set; }//สถานะ Visit
    }
}
